﻿using System.Collections.ObjectModel;
using System.Windows;
using PairingMatrix.Common;
using PairingMatrix.Common.Command;
using PairingMatrix.Common.Enum;
using PairingMatrix.Model;

namespace PairingMatrix.ViewModel
{
    public interface IProjectCardViewModel
    {
        int CardNumber { get; set;}
        int Priority { get; set;}
        string Title { get; set;}
        string Note { get; set;}
        Point CenterPoint { get; set; }
        Point Position { get; set; }
        Point PositionOnWallOnly { set; }
        bool ShowHighlighted { get; set; }
        ProjectCardModel Model { get; }
        StoryStatus DevStage { get; set; }
        string StatusInMingle { get; }
        bool ShowCard { get; set; }
        bool IsCardVisibleInCurrentWall { get; }
        bool CanAcceptMoreTeamMember();
        bool IsSyncing { get; }
        int NumberOfSignUps { get; }
        double DevEstimate { get; }
        Urgency Urgency { get; }
        ProjectCardModel PrimaryCard { get; }
        bool ShowDaysSpentForProjectCards { get; }

        ObservableCollection<IProjectCardViewModel> SecondaryProjectCards { get; set; }

        RelayCommand RemoveFromWallCommand { get; }
        RelayCommand ToggleNotesVisibilityCommand { get; }
        int ZIndex { get; set; }
    }
}